/**
 * 周定义
 * 年 + WeekOfYear (2位, 前补0)
 */
export class WeekLocation {
    public readonly year: number
    /**
     * @see getDisplay
     */
    public readonly display: number
    private readonly weekOfYear: number

    constructor(year: number, weekOfYear: number) {
        this.year = year
        this.weekOfYear = weekOfYear
        this.display = this.getDisplay()
    }

    public equal(o: any): boolean {
        if (!o) {
            return false
        }
        return this.display === o.display
    }

    /**
     * 年 + WeekOfYear (2位, 前补0) <br>
     * ISO-8601定义，其中一周从星期一开始，第一周 至少有4天。<br>
     * ISO-8601标准定义了基于周的日历系统。 它使用基于周的年份和基于周的年份的概念来拆分 增加天数，而不是标准的年/月/日。 <br>
     * 请注意，第一周可能从上一个日历年开始。 另请注意，日历年的前几天可能在 与上一个日历年相对应的基于周的年份
     */
    private getDisplay(): number {
        if (this.weekOfYear < 10) {
            return parseInt(this.year + '0' + this.weekOfYear)
        }

        return parseInt(String(this.year) + String(this.weekOfYear))
    }
}
